//network
#include<bits/stdc++.h>
using namespace std;
int n,a,b,c,d,e,cnt;
bool s;
struct node{
	long long s;
	bool type;
	int num;
}ct[1010];
string opt;
long long ch(int a,int b,int c,int d,int e)
{
	string r;
	for(int i=1;i<=7;i++)
	{
		r+=a&1;
		a>>1;
	}
	for(int i=1;i<=7;i++)
	{
		r+=b&1;
		b>>1;
	}
	for(int i=1;i<=7;i++)
	{
		r+=c&1;
		c>>1;
	}
	for(int i=1;i<=7;i++)
	{
		r+=d&1;
		d>>1;
	}
	for(int i=1;i<=15;i++)
	{
		r+=e&1;
		e>>1;
	}
}
int main()
{
	freopen("network.in","r",stdin);
	freopen("network.out","w",stdout);
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		cin>>opt;
		scanf("%d.%d.%d.%d:%d",&a,&b,&c,&d,&e);
		if(a>255||b>255||c>255||d>255||e>65535)
		{
			printf("ERR\n");
			continue;
		}
		ct[++cnt].s=ch(a,b,c,d,e);
		ct[cnt].num=i;
		ct[cnt].type=0;
		if(opt[0]=='S')
		ct[cnt].type=1;
	}
	for(int i=1;i<=cnt;i++)
	{
		for(int j=1;j<=cnt;j++)
		{
			if(i==j)
			continue;
			if(ct[i].s==ct[j].s)
			{
				if(ct[i].type==0&&ct[j].type==1)
				{
					printf("%d\n",j);
					break;
				}
				if(ct[i].type==1&&ct[j].type==0)
				{
					printf("OK\n");
					break;
				}
				if(ct[i].type==ct[j].type)
				{
					printf("FAIL\n");
				}
			}
		}
	}
}
